/**
给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1：

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2：

输入: "cbbd"
输出: "bb"

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/
func longestPalindrome(s string) string {
    if len(s) == 0{
        return s
    }
    dp,res,max := make([][]bool,len(s)),"",0
    for i :=  0; i < len(s); i++{
        dp[i] = make([]bool,len(s))
    }
    for j := 0;j < len(s);j++{
        for i := 0; i <= j;i++{
            dp[i][j]  =  s[i] == s[j] && (j - i <= 2 || dp[i+1][j-1])
            if dp[i][j]{
                if j -  i + 1 >  max{
                    max = j - i + 1
                    res = s[i:j+1]
                }
            }
        }
    }
    return res
}